package com.jarveis.frame.util;

import java.io.IOException;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;

/**
 * JSON的工具类
 * 
 */
public final class JsonUtil {

	private JsonUtil() {
	}

	/**
	 * 将json转换成对象
	 * 
	 * @param json
	 * @return
	 */
	public static Object parse(String json) {
		return JSON.parse(json);
	}

	/**
	 * 将json通过类型转换成对象
	 * 
	 * <pre>
	 * JsonUtil.parse(&quot;{\&quot;uname\&quot;:\&quot;uname\&quot;, \&quot;upwd\&quot;:\&quot;upwd\&quot;}&quot;, User.class);
	 * </pre>
	 * 
	 * @param json
	 *            json字符串
	 * @param clazz
	 *            泛型类型
	 * @return 返回对象
	 * @throws IOException
	 */
	public static <T> T parse(String json, Class<T> clazz) {
		return JSON.parseObject(json, clazz);
	}

	/**
	 * 将对象转换成json
	 * 
	 * @param src
	 * @return
	 */
	public static String toJson(Object src) {
		return JSON.toJSONString(src);
	}

	/**
	 * 将对象转换成json
	 * 
	 * <pre>
	 * JsonUtil.toJson(user);
	 * </pre>
	 * 
	 * @param src
	 *            对象
	 * @return 返回json字符串
	 * @throws IOException
	 */
	public static String toJson(Object src, SerializerFeature writeClassName) {
		return JSON.toJSONString(src, writeClassName);
	}

}